package com.logic.landseaserver.service;

import java.util.List;
import java.util.Map;

import com.logic.common.exception.BusinessException;
import com.logic.common.service.ICRUDService;
import com.logic.common.util.QueryUtil;
import com.logic.landseaserver.common.exception.LandseaBusinessException;
import com.logic.landseaserver.domain.Room;
import com.logic.landseaserver.domain.RoomType;
import com.logic.landseaserver.domain.SystemCode;
import com.logic.landseaserver.ws.dto.RoomDTO;
import com.logic.landseaserver.ws.dto.RoomDetailDTO;
import com.logic.landseaserver.ws.dto.RoomTypeDTO;
import com.logic.landseaserver.ws.request.ContractNeedDelReq;
import com.logic.landseaserver.ws.request.RoomDetailReq;
import com.logic.landseaserver.ws.request.RoomStatusListReq;
import com.logic.landseaserver.ws.request.RoomStatusStatisticReq;

public interface IProjectAppartment extends ICRUDService {

    List<Object> queryByPage(QueryUtil queryUtil, Integer projectId);

    void updateStatus(Room room) throws BusinessException;

    void updateAppendStatus(Room room) throws BusinessException;

    RoomDetailReq searchRoomInfo(int roomId);

    int insertRoomDetail(RoomDetailDTO roomDetailDTO) throws BusinessException;

    int editRoomDetail(Object obj) throws BusinessException;

    List<SystemCode> searchRoomStatusList();

    List<SystemCode> searchRoomAppendStatusList();

    List<SystemCode> searchRoomTypeByProjectID(int id);

    List<SystemCode> searchRoomTypeList();

    List<SystemCode> searchDecorateStyleByProjectID(int id);

    RoomType getDecoratePic(Integer id);

    void deletePrjStylePic(RoomType roomType);

    Integer savePrjPicAndInfo(RoomType roomType);

    List<RoomTypeDTO> queryRoomTypeList(QueryUtil queryUtil, Integer projectId);

    List<RoomTypeDTO> queryAllRoomTypeList(QueryUtil queryUtil);

    void deleteRoomType(String ids);

    List<SystemCode> getValideDecorateStyle(int id);

    //房态图列表
    List queryRoomList(RoomStatusListReq req);

    Map<String, Object> roomStatistic(RoomStatusStatisticReq req) throws LandseaBusinessException;

    void test() throws BusinessException;

    void resetNoPayRoom(List<ContractNeedDelReq> list);

    RoomDTO getAppendInfo(Integer id) throws LandseaBusinessException;

}
